Skip to content

Feat/finally full stack#119

Open
Zayan980 wants to merge 3 commits into
ed-donner:mainfrom
Zayan980:feat/finally-full-stack
Open

Feat/finally full stack#119
Zayan980 wants to merge 3 commits into
ed-donner:mainfrom
Zayan980:feat/finally-full-stack

Conversation

@Zayan980

Copy link
Copy Markdown

No description provided.

Zayan980 and others added 3 commits July 19, 2026 19:30
…, E2E

Complete the FinAlly AI trading workstation on top of the existing market-data
subsystem. Coordinated via planning/TEAM_CONTRACT.md.

Backend (FastAPI):
- app/config.py, app/runtime.py (shared PriceCache/source accessors)
- app/services/portfolio.py: execute_trade (weighted avg cost, validation,
  snapshot-on-trade) + build_portfolio
- app/api/{health,portfolio,watchlist,chat}.py per the wire contract
- app/main.py lifespan: init_db -> market source -> 30s snapshots -> SSE +
  REST + static frontend serving
- app/llm/: pydantic schema, prompts, Cerebras client (LiteLLM->OpenRouter),
  deterministic LLM_MOCK; chat auto-executes trades/watchlist changes
- 132 tests pass (services/api/llm added), ruff clean

Frontend (Next.js static export):
- Terminal orchestrator, TradeBar, PositionsTable, ChatPanel; Vitest config +
  unit tests
- Fix usePriceStream to parse the batched {ticker: update} SSE payload; add
  change_percent to the PriceUpdate type

DevOps + E2E:
- Fix container DB path (absolute FINALLY_DB_PATH=/app/db/finally.db) and stop
  tmpfs from shadowing schema.sql; full docker build runs healthy
- Playwright suite in test/ — 6 E2E scenarios pass against the running app

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0177Si2U5NgcHtJ57FLSGGuj
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant